use std::sync::Arc;
use std::thread;
fn main() {
//     这个变量声明用来指定其值的地方
    let apple = Arc::new("the sample apple");

    for i in 0..10 {
    //     这里没有数值说明，因为它是一个指向内存堆中引用的指针
        let apple = Arc::clone(&apple);
        thread::spawn(move ||{
            // 由于使用Arc,线程可以使用分配在`Arc`变量指针位置的值来生成的
            println!("No.{i},Thread: {:?},{}",apple,Arc::strong_count(&apple));
        });
    }
    for i in 0..10 {
        let apple = Arc::clone(&apple);
        println!("No.{i},Main: {:?},{}",apple,Arc::strong_count(&apple));
    }
}
